package com.atguigu.requestmapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @版本： V5.1.0
 * @版权： Copyright @ 2025 广东广昱信息科技有限公司版权所有
 * @作者： 广东广昱信息科技有限公司
 * @日期： 2025-07-03 23:26
 */
@Controller
@RequestMapping("/user")
public class UserController {
    /**
     * @WebServlet("必须使用/开头")
     * @RequestMapping("不要必须使用/开头")
     * 1.精准地址【一个|多个】/user/login{"地址1","地址2"}
     * 2.支持模糊 任意一层字符串|**任意层任意字符串
     *      /user/* -> user/a user/aaaa可以 /user/a/b不行
     *      /user/** -> user user/a user/a/a/a/a/a
     * 3.类上和方法上添加@RequestMapping的区别
     *    类上提取通用的访问地址
     *    方法上具体的handler地址
     *    访问：类地址+方法地址即可
     * 4.请求方式指定
     *     客户端->http(get|post|put|delete)  ->ds->handler
     *     默认情况：@RequestMapping("login")主要地址正确，任何请求方式都可以访问
     *     指定请求方式：method = {RequestMethod.GET,RequestMethod.POST}
     *     不符合请求方式：出现405异常
     * 5.注解进阶 只能使用在方法上
     *     get @GetMapping == @RequestMapping(xxxx,method = RequestMethod.GET)
     *     post @PostMapping == @RequestMapping(xxxx,method = RequestMethod.POST)
     *     put @PutMapping == @RequestMapping(xxxx,method = RequestMethod.PUT)
     *     delete @DeleteMapping == @RequestMapping(xxxx,method = RequestMethod.DELETE)
     *
     * @return
     */
    @RequestMapping
    @GetMapping //get请求地址
    public String index(){
        return "index";
    }

    //handler -> handlerMapping 指定访问地址
    @RequestMapping(value = "login",method =RequestMethod.POST)
    public String  login(){
        return null;
    }

    @RequestMapping(value = "register",method ={RequestMethod.GET,RequestMethod.POST})
    public String register(){
        return null;
    }
}
